package model.entities;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import model.persistence.HibernateSessionFactory;

import org.hibernate.Session;

@Entity
@Table(name="ItemsMercaderia")
public class ItemMercaderia
{
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	@ManyToOne
	@JoinColumn(name="idIngrediente")
	private Ingrediente ingrediente;
	
	@Column(name="cantidad")
	private float cantidad;
	
	@Column(name="fechaVencimiento")
	private Calendar fechaVencimiento;
	
	public static void Save(ItemMercaderia itemMercaderia)
	{
		Session session = HibernateSessionFactory.getSessionFactory().openSession();
		session.save(itemMercaderia);
		session.flush();
		session.close();
	}

	public Ingrediente getIngrediente()
	{
		return ingrediente;
	}

	public void setIngrediente(Ingrediente ingrediente)
	{
		this.ingrediente = ingrediente;
	}

	public float getCantidad()
	{
		return cantidad;
	}

	public void setCantidad(float cantidad)
	{
		this.cantidad = cantidad;
	}

	public Calendar getFechaVencimiento()
	{
		return fechaVencimiento;
	}

	public void setFechaVencimiento(Calendar fechaVencimiento)
	{
		this.fechaVencimiento = fechaVencimiento;
	}

	public boolean estaExpirado(Calendar fechaActual)
	{
		return fechaActual.after(fechaVencimiento);
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}
}
